From f62583d30c1e7bebf8e5c3870c0d8c00808ab03f Mon Sep 17 00:00:00 2001 From: Carlos Garnacho Date: Fri, 19 Nov 2010 19:02:27 +0100 Subject: [PATCH] GtkContainer: Also copy permanent container's classes on get_path_for_child() This makes inheritance work for the simplest cases when style is defined for classes. --- gtk/gtkcontainer.c | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/gtk/gtkcontainer.c b/gtk/gtkcontainer.c index 1be4ab2926..5433766c25 100644 --- a/gtk/gtkcontainer.c +++ b/gtk/gtkcontainer.c @@ -2215,7 +2215,28 @@ static GtkWidgetPath * gtk_container_real_get_path_for_child (GtkContainer *container, GtkWidget *child) { - return gtk_widget_path_copy (gtk_widget_get_path (GTK_WIDGET (container))); + GtkStyleContext *context; + GtkWidgetPath *path; + GList *classes; + + context = gtk_widget_get_style_context (GTK_WIDGET (container)); + path = gtk_widget_path_copy (gtk_widget_get_path (GTK_WIDGET (container))); + + /* Copy any permanent classes to the path */ + classes = gtk_style_context_list_classes (context); + + while (classes) + { + GList *cur; + + cur = classes; + classes = classes->next; + + gtk_widget_path_iter_add_class (path, -1, cur->data); + g_list_free_1 (cur); + } + + return path; } static gboolean -- 2.30.2